package org.haifi.game.action;

import org.haifi.game.AlertException;
import org.haifi.game.GameException;
import org.haifi.game.annotation.MethodId;
import org.haifi.game.pb.GameCommonAction.AlertMessage;
import org.haifi.game.pb.GameCommonAction.GameCommonActionParam;

/**
 * 提供一些通用的包返回结构,预留100个.
 * 
 * 这些包结构通常是系统主动推送的,并不是客户端请求的
 * 
 * 协议id: 51~150
 * 
 * @author joycube2
 * 
 */
public class GameCommonAction extends GameBaseAction {
	/**
	 * 定义返回异常信息
	 * 
	 * @param 协议号
	 *            51
	 */
	@MethodId(51)
	public AlertMessage.Builder alert(GameCommonActionParam param) {
		// 只是定义协议号及返回，不允许调用
		throw new AlertException(GameException.PERMISSION_DENNIED);
	}

	/**
	 * 进入地图
	 * 
	 * @param 协议号
	 *            52
	 */
	@MethodId(52)
	public void enterMap(GameCommonActionParam actionParam) {
		// 只是定义协议号及返回，不允许调用
		throw new AlertException(GameException.PERMISSION_DENNIED);
	}

	/**
	 * 离开地图
	 * 
	 * @param 协议号
	 *            53
	 */
	@MethodId(53)
	public void leaveMap(GameCommonActionParam param) {
		// 只是定义协议号及返回，不允许调用
		throw new AlertException(GameException.PERMISSION_DENNIED);
	}

	/**
	 * 死亡(role)
	 * 
	 * @param 协议号
	 *            54
	 */
	@MethodId(54)
	public void dead(GameCommonActionParam param) {
		// 只是定义协议号及返回，不允许调用
		throw new AlertException(GameException.PERMISSION_DENNIED);
	}

	// public void move
}
